package com.codedancer.campus.manager.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codedancer.campus.manager.service.bo.commodity.CommodityExamineBo;
import com.codedancer.campus.manager.service.bo.commodity.CommodityPageSearchBo;
import com.codedancer.campus.manager.service.vo.commodity.CommodityPageVo;
import com.codedancer.campus.manager.service.vo.commodity.CommodityVo;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface ICommodityService {

    /**
     * 分页查询商品
     * @param commodityPageSearchBo
     * @return
     */
    IPage<CommodityPageVo> page(CommodityPageSearchBo commodityPageSearchBo);

    /**
     * 下架
     * @param uuid
     */
    void drop(String uuid);

    /**
     * 上架
     * @param uuid
     */
    void put(String uuid);

    /**
     * 删除
     * @param uuid
     */
    void delete(String uuid);

    /**
     * 商品详情
     * @param uuid
     * @return
     */
    CommodityVo detail(String uuid);

    /**
     * 审核未通过
     * @param commodityExamineBo
     */
    void noPass(CommodityExamineBo commodityExamineBo);

    /**
     * 审核通过
     * @param commodityExamineBo
     */
    void pass(CommodityExamineBo commodityExamineBo);

    /**
     * 导出商品
     *
     * @param response
     */
    void export(HttpServletRequest request, HttpServletResponse response,
        CommodityPageSearchBo commodityPageSearchBo);

    /**
     * 批量下架
     * @param uuids
     */
    void batchDrop(List<String> uuids);

    /**
     * 批量上架
     * @param uuids
     */
    void batchPut(List<String> uuids);

    /**
     * 批量删除
     * @param uuids
     */
    void batchDelete(List<String> uuids);
}
